home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / interval.lha / interval / Tinterval.c < prev   
C/C++ Source or Header  |  1989-10-31  |  1KB  |  51 lines

  1. // A simple test program for the interval class
  2.  
  3. #include <CC/stdio.h>
  4. #include <CC/string.h>
  5. #include "interval.h"
  6.  
  7. void Usage(char *name)
  8. {
  9.     fprintf(stderr, "usage: %s real real +|-|*|/ real real\n", name);
  10. }
  11.  
  12. main(int argc, char **argv)
  13. {
  14.     float a,b,c,d;
  15.  
  16.     if (argc != 6) {
  17.     Usage(argv[0]);
  18.     exit(1);
  19.     }
  20.  
  21.     a = atof(argv[1]);
  22.     b = atof(argv[2]);
  23.     c = atof(argv[4]);
  24.     d = atof(argv[5]);
  25.     {
  26.     interval I1(a,b);
  27.     interval I2(c,d);
  28.     interval Result, Result2;
  29.  
  30.     switch (argv[3][0]) {
  31.     case '+': Result = I1 + I2; break;
  32.     case '-': Result = I1 - I2; break;
  33.     case '*': Result = I1 * I2; break;
  34.     case '/': Result = I1 / I2; break;
  35.     default: 
  36.         Usage(argv[0]);
  37.         exit(2);
  38.     }
  39.  
  40.     printf("[%f, %f] %s [%f, %f] == [%f, %f]\n", 
  41.         I1.lo(), I1.hi(), argv[3], I2.lo(), I2.hi(), 
  42.         Result.lo(), Result.hi());
  43.  
  44.     // Now check out += and integer-to-interval conversion
  45.     Result2 = Result;
  46.     Result2 += 4;
  47.     printf("[%f, %f] + 4 == [%f, %f]\n", 
  48.         Result.lo(), Result.hi(), Result2.lo(), Result2.hi());
  49.     }
  50. }
  51.